interface Todo {
  readonly title: string;
  completed: boolean;
  description: string;
  date?: Date;
  publisher?: string;
}

type Required<T> = {
  -readonly [K in keyof T]-?: T[K];
};

type Todo_ = Required<Todo>;

type Partial<T> = {
  [K in keyof T]?: T[K];
};

type Todo1_ = Partial<Todo>;
type Todo2_ = Readonly<Todo>;

export {};
